// ==UserScript==
// @name 宝可梦点击(Poke Clicker)辅助脚本 [额外设定] Script
// @namespace PokeClickerHelper
// @version 0.1.0
// @description 在 开始菜单 => 设置 => 新增了一些额外设定的功能可自行开启!
// @author 苍猫
// @match http://localhost:3000/
// @match http://127.0.0.1:60080/pokeclicker/*
// @match file:///I:/pokeclicker-develop/build/index.html
// @match https://www.pokeclicker.com
// @match https://g8hh.github.io/pokeclicker/
// @match https://pokeclicker.g8hh.com
// @match https://yx.g8hh.com/pokeclicker/
// @icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/319hf99fYX/fX2F/319hf8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////99fYX/fX2F/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////wAAAP8AAAD/fX2F/319hf99fYX/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAD/AAAA/wAAAP99fYX/fX2F/wAAAP8AAAD/AAAA/319hf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/HBT//xwU//8AAAD//////319hf8AAAD/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU//8cFP//HBT//wAAAP8AAAD/Dgim/w4Ipv8OCKb/Dgim/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT//xwU/44cFP//HBT//xwU//8cFP//Dgim/w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/HBT//xwU/47/////HBT/jhwU//8cFP//HBT//w4Ipv8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/xwU//8cFP//HBT/jhwU//8OCKb/Dgim/w4Ipv8OCKb/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/xwU//8OCKb/Dgim/w4Ipv8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AADwDwAA4AcAAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAOAHAADwDwAA/D8AAP//AAD//wAA//8AAA==
// @grant none
// @license MIT
// @run-at document-end
// ==/UserScript==
/* global App, $, PokeClickerHelper, GameConstants, player, PokemonShops:true, Shop, ItemList, MapHelper, TownList, EvolutionStone, pokeLeagueShop*/
if (typeof PokeClickerHelper == typeof void 0) {
alert('宝可梦点击(Poke Clicker)辅助脚本 [额外设定] Script加载失败\n\n未找到核心模块,需要先安装核心模块才可正常使用\n\n论坛主页:https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842')
window.open("https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=3842")
return
}
// UI相关
PokeClickerHelper.UIScript.push(`
|
|
|
|
|
|
|
|
`)
// 初始化后加载功能 客户端模式
JSON.parse(PokeClickerHelper.get('ClientStatus', 'false')) ? App.isUsingClient = true : App.isUsingClient = false
let fuc = () => {
// 初始化
ScriptSetting.initialize('ClientStatus', '#PokeClickerHelperClientStatus')//客户端模式
ScriptSetting.initialize('PokeShopStatus', '#PokeClickerHelperPokeShopStatus')//宝可梦商店
ScriptSetting.initialize('WharfStatus', '#PokeClickerHelperWharfStatus')//码头
ScriptSetting.initialize('HideWildPokemonStatus', '#PokeClickerHelperHideWildPokemonStatus')//隐藏道路宝可梦信息
// 初始化商店数据
ConvenientStore.initialize()
// 初始化后加载功能
if (JSON.parse(PokeClickerHelper.get('PokeShopStatus', 'false'))) ConvenientStore.LoadFunction()//宝可梦商店
if (JSON.parse(PokeClickerHelper.get('PokeShopStatus', 'false'))) ScriptSetting.LoadWharf()//码头
if (JSON.parse(PokeClickerHelper.get('HideWildPokemonStatus', 'false'))) PokeClickerHelper.hookGameTickList.add(ScriptSetting.HideWildPokemon)//隐藏道路宝可梦信息
}
const listener = () => {
// 客户端模式 checkbox 监听
$('#PokeClickerHelperClientStatus').on('change', function () {
if (JSON.parse(PokeClickerHelper.get('ClientStatus', 'false'))) {
PokeClickerHelper.set('ClientStatus', 'false')
} else {
PokeClickerHelper.set('ClientStatus', 'true')
}
PokeClickerHelper.Notify({ title: '宝可梦点击(Poke Clicker)辅助脚本', message: "客户端模式设置成功,请重新刷新游戏!" });
})
// 宝可梦商店 checkbox 监听
$('#PokeClickerHelperPokeShopStatus').on('change', function () {
if (JSON.parse(PokeClickerHelper.get('PokeShopStatus', 'false'))) {
PokeClickerHelper.set('PokeShopStatus', 'false')
ConvenientStore.LoadFunction('remove')
} else {
PokeClickerHelper.set('PokeShopStatus', 'true')
ConvenientStore.LoadFunction()
}
})
// 宝可梦商店 button 监听
$('#PokeClickerHelperPokemonShops').on('click', function () {
PokeClickerHelper.ConvenientStore.OpenShops();
})
// 码头 checkbox 监听
$('#PokeClickerHelperWharfStatus').on('change', function () {
if (JSON.parse(PokeClickerHelper.get('WharfStatus', 'false'))) {
PokeClickerHelper.set('WharfStatus', 'false')
ScriptSetting.LoadWharf('remove')
} else {
PokeClickerHelper.set('WharfStatus', 'true')
ScriptSetting.LoadWharf()
}
})
// 码头 button 监听
$('#PokeClickerHelperWharf').on('click', function () {
MapHelper.openShipModal();
})
// 隐藏道路宝可梦信息 checkbox 监听
$('#PokeClickerHelperHideWildPokemonStatus').on('change', function () {
if (JSON.parse(PokeClickerHelper.get('HideWildPokemonStatus', 'false'))) {
PokeClickerHelper.set('HideWildPokemonStatus', 'false')
PokeClickerHelper.hookGameTickList.delete(ScriptSetting.HideWildPokemon)
} else {
PokeClickerHelper.set('HideWildPokemonStatus', 'true')
PokeClickerHelper.hookGameTickList.add(ScriptSetting.HideWildPokemon)
}
})
}
PokeClickerHelper.UIContainerID.push("#PokeClickerHelperPokemonShops");
PokeClickerHelper.UICustomFuc.push(fuc);
PokeClickerHelper.UIlistener.push(listener);
// 暴露对象方法到全局
const ScriptSetting = {}; // 脚本设置变量
const ConvenientStore = {}; // 宝可梦超市变量
PokeClickerHelper.ConvenientStore = ConvenientStore;
PokeClickerHelper.ScriptSetting = ScriptSetting;
// 初始化的函数 用于初始化复制 和 检查功能checked的状态
ScriptSetting.initialize = (key, id) => {
// 初始化赋值
if (PokeClickerHelper.get(key, '') === '') PokeClickerHelper.set(key, 'false')
// 检查功能状态
JSON.parse(PokeClickerHelper.get(key, 'false')) ? $(id).prop('checked', true) : $(id).prop('checked', false)
}
// 加载码头功能 可空 默认加载 cmd = 'remove' 移除
ScriptSetting.LoadWharf = (cmd = 'load') => {
if (cmd == 'load') {
let text = ``
$('#townMap').append(text)
} else if (cmd = 'remove') {
$("#PokeClickerHelperWharf").remove()
}
}
ScriptSetting.HideWildPokemon = () => {
// 移除击败动画
if ($('knockout[data-bind*="App.game.statistics.routeKills"]').length > 0) $('knockout[data-bind*="App.game.statistics.routeKills"]')[0].remove()
// 移除宝可梦图片
if ($('img.enemy').length > 0) $('img.enemy')[0].remove()
// 移除宝可梦血条
if ($('.progress.hitpoints').length > 0) $('.progress.hitpoints')[0].remove()
// 移除宝可梦名字
if ($('knockout[data-bind*="text: Battle.enemyPokemon().name"]').length > 0) $('knockout[data-bind*="text: Battle.enemyPokemon().name"]')[0].remove()
// 移除宝可梦是否捕获图标
if ($('knockout[data-bind*="caughtStatusTemplate"').length > 0) $('knockout[data-bind*="caughtStatusTemplate"')[0].remove()
}
// 加载宝可梦商店功能 可空 默认加载 cmd = 'remove' 移除
ConvenientStore.LoadFunction = (cmd = 'load') => {
if (cmd == 'load') {
let text = ` |
`
$("#shortcutsBody tbody").append(text);
} else if (cmd = 'remove') {
$("#PokeClickerHelperPokemonShops").parent().parent().remove()
}
}
// 初始化商店物品数据
ConvenientStore.initialize = () => {
ConvenientStore.PokeShopItem = new Array; //商店数据 一维数组
Object.keys(GameConstants.Region).filter(stone => isNaN(stone) && stone !== 'none').forEach(RegionNmae => {
ConvenientStore.PokeShopItem[GameConstants.Region[RegionNmae]] = new Array; //商店数据 二维数组
//遍历 蛋
Object.values(ItemList).filter(({ name }) => name.includes('egg') && name != 'Lucky_egg' && name != 'Pokemon_egg').forEach(egg => {
ConvenientStore.PokeShopItem[GameConstants.Region[RegionNmae]].push(egg)
})
//遍历 进化道具
Object.values(TownList).filter(t => t.region === GameConstants.Region[RegionNmae] && t.constructor.name === 'Town').forEach(p => {
for (let i = 0; i < p.content.length; i++) {
if (p.content[i] instanceof Shop) {
for (let j = 0; j < p.content[i].items.length; j++) {
if (p.content[i].items[j] instanceof EvolutionStone) ConvenientStore.PokeShopItem[GameConstants.Region[RegionNmae]].push(p.content[i].items[j])
}
}
}
})
//遍历 联盟商店
for (let i = 0; i < pokeLeagueShop().items.length; i++) {
ConvenientStore.PokeShopItem[GameConstants.Region[RegionNmae]].push(pokeLeagueShop().items[i])
}
})
}
// 打开商店方法 根据玩家所在区域进行读取商店物品数据
ConvenientStore.OpenShops = () => {
PokemonShops = new Shop(ConvenientStore.PokeShopItem[player.region], GameConstants.camelCaseToString(GameConstants.Region[player.region]) + '(⁎˃ᴗ˂⁎)宝可梦商店');
PokemonShops.protectedOnclick();
}